package org.nobody.mallb2c.mallcart.vo;

/**
 * @author 3489309323@qq.com
 * @create 2020-09-19-16:14
 */

import java.math.BigDecimal;
import java.util.List;

/**
 * 整个购物车
 */
public class Cart {
  List<CartItem> items;
  private Integer countNum; //商品数量
  private Integer countType; //商品类型数量
  private BigDecimal totalAmount; //商品总价
  private BigDecimal reduce = new BigDecimal("0.00"); //减免价格


  public List<CartItem> getItems() {
    return items;
  }

  public void setItems(List<CartItem> items) {
    this.items = items;
  }

  public Integer getCountNum() {
    int count = 0;
    if (items != null && items.size() > 0) {
      count = items.stream().mapToInt(CartItem::getCount).sum();
    }
    return count;
  }

  public Integer getCountType() {
    return items.size();
  }

  public BigDecimal getTotalAmount() {
    BigDecimal amount = new BigDecimal("0");
    //1. 计算购物项总价
    if (items != null && items.size() > 0) {
      for (CartItem item : items) {
        if(item.getCheck()) amount = amount.add(item.getTotalPrice());
      }
    }
    //2.减去优惠总价
    amount = amount.subtract(getReduce());
    return amount;
  }

  public BigDecimal getReduce() {
    return reduce;
  }
}
